AIC average by age group

Examine age-related change in parameter estimates from models
Run regressions between model parameters and age
##
## Call:
## lm(formula = LL ~ age, data = model_params)
##
## Residuals:
## Min 1Q Median 3Q Max
## -157.706 -55.851 8.701 52.092 131.154
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -243.141 19.401 -12.532 <2e-16 ***
## age 2.813 1.149 2.448 0.0157 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 67.27 on 133 degrees of freedom
## Multiple R-squared: 0.04313, Adjusted R-squared: 0.03593
## F-statistic: 5.994 on 1 and 133 DF, p-value: 0.01565
##
## Call:
## lm(formula = alphaPosChoice ~ age, data = model_params)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.28765 -0.19218 -0.08989 0.12089 0.68734
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.863e-01 7.683e-02 3.727 0.000286 ***
## age 8.182e-05 4.551e-03 0.018 0.985681
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2664 on 133 degrees of freedom
## Multiple R-squared: 2.431e-06, Adjusted R-squared: -0.007516
## F-statistic: 0.0003233 on 1 and 133 DF, p-value: 0.9857
##
## Call:
## lm(formula = alphaNegChoice ~ age, data = model_params)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.19615 -0.12346 -0.06146 0.00172 0.82184
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.29767 0.06518 4.567 1.12e-05 ***
## age -0.01183 0.00386 -3.064 0.00264 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.226 on 133 degrees of freedom
## Multiple R-squared: 0.06595, Adjusted R-squared: 0.05892
## F-statistic: 9.39 on 1 and 133 DF, p-value: 0.002642
##
## Call:
## lm(formula = alphaPosComp ~ age, data = model_params)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.20486 -0.16290 -0.11220 0.01203 0.87932
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.261130 0.077306 3.378 0.000959 ***
## age -0.006186 0.004579 -1.351 0.178941
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.268 on 133 degrees of freedom
## Multiple R-squared: 0.01354, Adjusted R-squared: 0.006124
## F-statistic: 1.826 on 1 and 133 DF, p-value: 0.1789
##
## Call:
## lm(formula = alphaNegComp ~ age, data = model_params)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.2291 -0.2075 -0.1851 0.1059 0.7982
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.253218 0.095197 2.660 0.00878 **
## age -0.002721 0.005638 -0.483 0.63020
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.3301 on 133 degrees of freedom
## Multiple R-squared: 0.001748, Adjusted R-squared: -0.005758
## F-statistic: 0.2329 on 1 and 133 DF, p-value: 0.6302
##
## Call:
## lm(formula = betaAgency ~ age, data = model_params)
##
## Residuals:
## Min 1Q Median 3Q Max
## -9.553 -4.101 -1.937 3.475 19.945
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.91959 1.65918 2.362 0.0196 *
## age 0.24602 0.09827 2.504 0.0135 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 5.753 on 133 degrees of freedom
## Multiple R-squared: 0.04501, Adjusted R-squared: 0.03783
## F-statistic: 6.268 on 1 and 133 DF, p-value: 0.0135
##
## Call:
## lm(formula = betaMachine ~ age, data = model_params)
##
## Residuals:
## Min 1Q Median 3Q Max
## -8.060 -3.211 -1.095 1.786 22.739
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.89653 1.45762 3.359 0.00102 **
## age 0.15066 0.08633 1.745 0.08327 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 5.054 on 133 degrees of freedom
## Multiple R-squared: 0.02239, Adjusted R-squared: 0.01504
## F-statistic: 3.046 on 1 and 133 DF, p-value: 0.08327
##
## Call:
## lm(formula = agencyBonus ~ age, data = model_params)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.78412 -0.22038 -0.11946 0.06671 2.45157
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.663550 0.150879 4.398 2.22e-05 ***
## age -0.014854 0.008936 -1.662 0.0988 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.5231 on 133 degrees of freedom
## Multiple R-squared: 0.02035, Adjusted R-squared: 0.01299
## F-statistic: 2.763 on 1 and 133 DF, p-value: 0.09882
Learning rate model
## Mixed Model Anova Table (Type 3 tests, S-method)
##
## Model: estimate ~ age_z * valence * agency + (1 | subject_id)
## Data: learning_rates
## Effect df F p.value
## 1 age_z 1, 133.00 3.75 + .055
## 2 valence 1, 399.00 8.68 ** .003
## 3 agency 1, 399.00 0.28 .596
## 4 age_z:valence 1, 399.00 0.89 .345
## 5 age_z:agency 1, 399.00 0.10 .751
## 6 valence:agency 1, 399.00 25.75 *** <.001
## 7 age_z:valence:agency 1, 399.00 2.96 + .086
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '+' 0.1 ' ' 1
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: estimate ~ age_z * valence * agency + (1 | subject_id)
## Data: data
##
## REML criterion at convergence: 180.5
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -1.4215 -0.6024 -0.3468 0.1215 3.2414
##
## Random effects:
## Groups Name Variance Std.Dev.
## subject_id (Intercept) 0.007237 0.08507
## Residual 0.068473 0.26167
## Number of obs: 540, groups: subject_id, 135
##
## Fixed effects:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 0.191380 0.013432 133.000000 14.248 < 2e-16 ***
## age_z -0.026041 0.013444 133.000000 -1.937 0.05486 .
## valence1 -0.033171 0.011261 399.000000 -2.946 0.00341 **
## agency1 0.005975 0.011261 399.000000 0.531 0.59600
## age_z:valence1 -0.010648 0.011271 399.000000 -0.945 0.34537
## age_z:agency1 -0.003581 0.011271 399.000000 -0.318 0.75086
## valence1:agency1 -0.057139 0.011261 399.000000 -5.074 5.97e-07 ***
## age_z:valence1:agency1 -0.019387 0.011271 399.000000 -1.720 0.08619 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) age_z valnc1 agncy1 ag_z:v1 ag_z:g1 vln1:1
## age_z 0.000
## valence1 0.000 0.000
## agency1 0.000 0.000 0.000
## age_z:vlnc1 0.000 0.000 0.000 0.000
## age_z:gncy1 0.000 0.000 0.000 0.000 0.000
## vlnc1:gncy1 0.000 0.000 0.000 0.000 0.000 0.000
## ag_z:vln1:1 0.000 0.000 0.000 0.000 0.000 0.000 0.000
##
## Paired t-test
##
## data: model_params$alphaPosChoice and model_params$alphaNegChoice
## t = 6.4697, df = 134, p-value = 1.698e-09
## alternative hypothesis: true mean difference is not equal to 0
## 95 percent confidence interval:
## 0.1254031 0.2358366
## sample estimates:
## mean difference
## 0.1806199
##
## Paired t-test
##
## data: model_params$alphaPosComp and model_params$alphaNegComp
## t = -1.1817, df = 134, p-value = 0.2394
## alternative hypothesis: true mean difference is not equal to 0
## 95 percent confidence interval:
## -0.12816925 0.03229399
## sample estimates:
## mean difference
## -0.04793763
Plot relations between model parameters and age

LS0tCnRpdGxlOiAiRTIgVm9DIEFuYWx5c2VzIFBhcnQgMzogUkwgQW5hbHlzZXMiCmRhdGU6IDEvOC8yNApvdXRwdXQ6CiAgICBodG1sX2RvY3VtZW50OgogICAgICAgIGRmX3ByaW50OiAncGFnZWQnCiAgICAgICAgdG9jOiB0cnVlCiAgICAgICAgdG9jX2Zsb2F0OgogICAgICAgICAgICBjb2xsYXBzZWQ6IGZhbHNlCiAgICAgICAgICAgIHNtb290aF9zY3JvbGw6IHRydWUKICAgICAgICBudW1iZXJfc2VjdGlvbnM6IGZhbHNlCiAgICAgICAgY29kZV9kb3dubG9hZDogdHJ1ZQogICAgICAgIHNlbGZfY29udGFpbmVkOiB0cnVlCi0tLQoKYGBge3IgY2h1bmsgc2V0dGluZ3MsIGluY2x1ZGUgPSBGQUxTRX0KIyBzZXQgY2h1bmsgc2V0dGluZ3MKa25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBGQUxTRSwgCiAgICAgICAgICAgICAgICAgICAgICBjYWNoZSA9IFRSVUUsCiAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID0gRkFMU0UsCiAgICAgICAgICAgICAgICAgICAgICB3YXJuaW5nID0gRkFMU0UpCmtuaXRyOjpvcHRzX2NodW5rJHNldChkcGk9NjAwKQprbml0cjo6b3B0c19rbml0JHNldChyb290LmRpciA9IHJwcm9qcm9vdDo6ZmluZF9yc3R1ZGlvX3Jvb3RfZmlsZSgpKQpgYGAKCmBgYHtyIGxvYWQgbGlicmFyaWVzLCBpbmNsdWRlID0gRn0KCiNsb2FkIGxpYnJhcmllcwpsaWJyYXJ5KHRpZHl2ZXJzZSkKbGlicmFyeShnbHVlKQpsaWJyYXJ5KGFmZXgpCmxpYnJhcnkobGF0ZXgyZXhwKQoKI2xvYWQgc2NyaXB0cwpzb3VyY2UoJ2FuYWx5c2lzX3NjcmlwdHMvdm9jX2Z1bmN0aW9ucy5SJykKYGBgCgpgYGB7ciBpbXBvcnQgZGF0YX0KIyByZWFkIGluIHBhcnRpY2lwYW50IGFnZXMKcGFydGljaXBhbnRfYWdlcyA8LSByZWFkX2NzdignZGF0YS92b2Nfc3ViX2luZm8uY3N2JykgCgojIHJlYWQgaW4gbGVhcm5pbmcgZGF0YQpsZWFybmluZ19kYXRhIDwtIHJlYWRfY3N2KCdkYXRhL3Byb2Nlc3NlZC9sZWFybmluZ19kYXRhLmNzdicpCgojIGV4Y2x1ZGUgZmlyc3Qtc3RhZ2UgbWlzc2VzIGFuZCBmaXJzdC1zdGFnZSBSVCA8IDE1MCBtcwpsZWFybmluZ19kYXRhX2ZpbHRlcmVkIDwtIGxlYXJuaW5nX2RhdGEgJT4lCiAgZmlsdGVyKHN0YWdlXzFfcnQgPiAxNTApCgojZXhjbHVkZSBwYXJ0aWNpcGFudHMgd2hvIG1hZGUgbW9yZSB0aGFuIDMwMCBvZiB0aGUgc2FtZSBhZ2VuY3kgZGVjaXNpb25zCnN0YWdlMV9kZWNpc2lvbnMgPC0gbGVhcm5pbmdfZGF0YV9maWx0ZXJlZCAlPiUKICBncm91cF9ieShzdWJqZWN0X2lkKSAlPiUKICBzdW1tYXJpemUoYWdlbmN5X2Nob2ljZXMgPSBzdW0oc3RhZ2VfMV9jaG9pY2UgPT0gMSkpICU+JQogIGZpbHRlcihhZ2VuY3lfY2hvaWNlcyA8IDI5OSkgJT4lCiAgZmlsdGVyKGFnZW5jeV9jaG9pY2VzID4gMTUpCgpwYXJ0aWNpcGFudF9hZ2VzIDwtIHBhcnRpY2lwYW50X2FnZXMgJT4lCiAgZmlsdGVyKHN1YmplY3RfaWQgJWluJSBzdGFnZTFfZGVjaXNpb25zJHN1YmplY3RfaWQpCgojIyByZWFkIGluIGFpY3MKYWljc19hbGwgPSByZWFkX2NzdigiUkxfbW9kZWxpbmcvb3V0cHV0L2FpY3NfYWxsXzE2X21vZGVsc18xMDBpdGVyLmNzdiIpICU+JQogIHJlbmFtZShzdWJqZWN0X2lkID0gc3ViSUQpCgojIGNvbWJpbmUgd2l0aCBhZ2VzCmFpY3MgPC0gaW5uZXJfam9pbihhaWNzX2FsbCwgcGFydGljaXBhbnRfYWdlcywgYnkgPSAnc3ViamVjdF9pZCcpICU+JQogIG11dGF0ZShhZ2VfZ3JvdXAgPSBjYXNlX3doZW4oYWdlIDwgMTMgfiAiQ2hpbGRyZW4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWdlID4gMTIuOTkgJiBhZ2UgPCAxOCB+ICJBZG9sZXNjZW50cyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZ2UgPiAxNy45OSB+ICJBZHVsdHMiKSkKCmFpY3MkYWdlX2dyb3VwIDwtIGZhY3RvcihhaWNzJGFnZV9ncm91cCwgbGV2ZWxzID0gYygiQ2hpbGRyZW4iLCAiQWRvbGVzY2VudHMiLCAiQWR1bHRzIikpCiAgICAgICAgIAoKI3Bpdm90IGxvbmdlcgptb2RlbF9yZXN1bHRzIDwtIHBpdm90X2xvbmdlcihhaWNzLCAKICAgICAgICAgICAgICAgICAgICAgIGNvbHMgPSBvbmVBbHBoYV9vbmVCZXRhOmZvdXJBbHBoYV90d29CZXRhX2FnZW5jeUJvbnVzLAogICAgICAgICAgICAgICAgICAgICAgbmFtZXNfdG8gPSAibW9kZWwiLAogICAgICAgICAgICAgICAgICAgICAgdmFsdWVzX3RvID0gIkFJQyIpCgoKbW9kZWxfcmVzdWx0cyRtb2RlbCA8LSBmYWN0b3IobW9kZWxfcmVzdWx0cyRtb2RlbCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldmVscyA9IGMoIm9uZUFscGhhX29uZUJldGEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvbmVBbHBoYV90d29CZXRhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHdvQWxwaGFfb25lQmV0YSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInR3b0FscGhhX3R3b0JldGEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0d29BbHBoYVZhbGVuY2VkX29uZUJldGEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0d29BbHBoYVZhbGVuY2VkX3R3b0JldGEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmb3VyQWxwaGFfb25lQmV0YSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvdXJBbHBoYV90d29CZXRhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib25lQWxwaGFfb25lQmV0YV9hZ2VuY3lCb251cyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9uZUFscGhhX3R3b0JldGFfYWdlbmN5Qm9udXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0d29BbHBoYV9vbmVCZXRhX2FnZW5jeUJvbnVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHdvQWxwaGFfdHdvQmV0YV9hZ2VuY3lCb251cyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInR3b0FscGhhVmFsZW5jZWRfb25lQmV0YV9hZ2VuY3lCb251cyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInR3b0FscGhhVmFsZW5jZWRfdHdvQmV0YV9hZ2VuY3lCb251cyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvdXJBbHBoYV9vbmVCZXRhX2FnZW5jeUJvbnVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZm91ckFscGhhX3R3b0JldGFfYWdlbmN5Qm9udXMiKSkKbW9kZWxfcmVzdWx0cyA8LSBtb2RlbF9yZXN1bHRzICU+JQogIG11dGF0ZShhZ2VuY3lCb251cyA9IGNhc2Vfd2hlbihzdHJfZGV0ZWN0KG1vZGVsLCAiYWdlbmN5IikgfiAiV2l0aCBBZ2VuY3kgQm9udXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhc3RyX2RldGVjdChtb2RlbCwgImFnZW5jeSIpIH4gIk5vIEFnZW5jeSBCb251cyIpLAogICAgICAgICBzaG9ydE5hbWUgPSBzdHJfcmVtb3ZlKG1vZGVsLCAnX2FnZW5jeUJvbnVzJykpCgptb2RlbF9yZXN1bHRzJHNob3J0TmFtZSA8LSBmYWN0b3IobW9kZWxfcmVzdWx0cyRzaG9ydE5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXZlbHMgPSBjKCJvbmVBbHBoYV9vbmVCZXRhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9uZUFscGhhX3R3b0JldGEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHdvQWxwaGFfb25lQmV0YSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0d29BbHBoYV90d29CZXRhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInR3b0FscGhhVmFsZW5jZWRfb25lQmV0YSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0d29BbHBoYVZhbGVuY2VkX3R3b0JldGEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZm91ckFscGhhX29uZUJldGEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZm91ckFscGhhX3R3b0JldGEiKSkKYGBgCgojICBBSUMgYXZlcmFnZSBieSBhZ2UgZ3JvdXAgCmBgYHtyIHBsb3QgQUlDIGJ5IGFnZSBncm91cCwgZmlnLndpZHRoID0gOCwgZmlnLmhlaWdodCA9IDUsIHVuaXRzID0gImluIn0KI3N1bW1hcml6ZQptb2RlbF9zdW1tYXJ5IDwtIG1vZGVsX3Jlc3VsdHMgJT4lCiAgZ3JvdXBfYnkoYWdlX2dyb3VwLCBzaG9ydE5hbWUsIGFnZW5jeUJvbnVzKSAlPiUKICBzdW1tYXJpemUobWVhbl9haWMgPSBtZWFuKEFJQykpCgojIyBQbG90IHRoZSByZXN1bHRzIGJ5IGFnZSBncm91cCAKQUlDX2FnZV9wbG90IDwtIGdncGxvdChtb2RlbF9zdW1tYXJ5LCBhZXMoeCA9IGFnZV9ncm91cCwgeSA9IG1lYW5fYWljLCBmaWxsID0gc2hvcnROYW1lKSkrCiAgZmFjZXRfd3JhcCh+YWdlbmN5Qm9udXMpICsKICBnZW9tX2JhcihzdGF0ID0gImlkZW50aXR5IiwgcG9zaXRpb24gPSAiZG9kZ2UiLCBjb2xvciA9ICJibGFjayIpICsKICBzY2FsZV9maWxsX21hbnVhbChuYW1lID0gIk1vZGVsIiwKICAgICAgICAgICAgICAgICAgICB2YWx1ZXMgPSBjKGNvbG9yOCwgY29sb3IxLCBjb2xvcjIsIGNvbG9yMywgY29sb3I0LCBjb2xvcjUsIGNvbG9yNiwgY29sb3I3LCBjb2xvcjEpLAogICAgICAgICAgICAgICAgICAgIGxhYmVscyA9ICBjKFRlWCgnJG9uZVxcYWxwaGFcXF9vbmVcXGJldGEnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVgoJyRvbmVcXGFscGhhXFxfdHdvXFxiZXRhJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVYKCckdHdvQ2hvaWNlXFxhbHBoYVxcX29uZVxcYmV0YScpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlWCgnJHR3b0Nob2ljZVxcYWxwaGFcXF90d29cXGJldGEnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVgoJyR0d29WYWxlbmNlZFxcYWxwaGFcXF9vbmVcXGJldGEnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVgoJyR0d29WYWxlbmNlZFxcYWxwaGFcXF90d29cXGJldGEnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVgoJyRmb3VyXFxhbHBoYVxcX29uZVxcYmV0YScpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlWCgnJGZvdXJcXGFscGhhXFxfdHdvXFxiZXRhJykpKSArIAogIGNvb3JkX2NhcnRlc2lhbih5bGltID0gYygzNTAsIDY1MCkpICsKICB5bGFiKCJNZWFuIEFJQyIpICsKICB4bGFiKCIiKSArCiAgdm9jX3RoZW1lKCkgKwogIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gNjAsIGhqdXN0ID0gMSkpCkFJQ19hZ2VfcGxvdApgYGAKCgojICBFeGFtaW5lIGFnZS1yZWxhdGVkIGNoYW5nZSBpbiBwYXJhbWV0ZXIgZXN0aW1hdGVzIGZyb20gbW9kZWxzCmBgYHtyIGxvYWQgcGFyYW1ldGVycyBmcm9tIHdpbm5pbmcgbW9kZWx9Cm1vZGVsX3BhcmFtcyA8LSByZWFkX2NzdigiUkxfbW9kZWxpbmcvb3V0cHV0L21vZGVsX2ZpdHNfcmVhbF9kYXRhL2ZvdXJBbHBoYV90d29CZXRhX2FnZW5jeUJvbnVzLmNzdiIsCiAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfbmFtZXMgPSBjKCJuZWdMTCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsb2dQb3N0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFJQyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJCSUMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWxwaGFQb3NDaG9pY2UiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWxwaGFOZWdDaG9pY2UiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWxwaGFQb3NDb21wIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFscGhhTmVnQ29tcCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJiZXRhQWdlbmN5IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJldGFNYWNoaW5lIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFnZW5jeUJvbnVzIikpIAoKI2FkZCBzdWIgSUQgYW5kIGluZm9ybWF0aW9uCnN1YmplY3RfaWQgPC0gYWljc19hbGwgJT4lIHNlbGVjdChzdWJqZWN0X2lkKSAlPiUgdW5pcXVlKCkKbW9kZWxfcGFyYW1zIDwtIGJpbmRfY29scyhzdWJqZWN0X2lkLCBtb2RlbF9wYXJhbXMpCm1vZGVsX3BhcmFtcyA8LSBpbm5lcl9qb2luKHBhcnRpY2lwYW50X2FnZXMsIG1vZGVsX3BhcmFtcywgYnkgPSBjKCJzdWJqZWN0X2lkIikpCgpgYGAKCgojIFJ1biByZWdyZXNzaW9ucyBiZXR3ZWVuIG1vZGVsIHBhcmFtZXRlcnMgYW5kIGFnZQpgYGB7ciBwYXJhbWV0ZXIgcmVncmVzc2lvbnN9Cm1vZGVsX3BhcmFtcyRMTCA8LSBtb2RlbF9wYXJhbXMkbmVnTEwgKiAtMQoKIyBMb2cgbGlrZWxpaG9vZApzdW1tYXJ5KGxtKExMIH4gYWdlLCBkYXRhID0gbW9kZWxfcGFyYW1zKSkKIyBub3Qgc2lnbmlmaWNhbnQKCiMgQWxwaGEgUG9zIENob2ljZQpzdW1tYXJ5KGxtKGFscGhhUG9zQ2hvaWNlIH4gYWdlLCBkYXRhID0gbW9kZWxfcGFyYW1zKSkKI25vdCBzaWduaWZpY2FudAoKIyBBbHBoYSBOZWcgQ2hvaWNlCnN1bW1hcnkobG0oYWxwaGFOZWdDaG9pY2UgfiBhZ2UsIGRhdGEgPSBtb2RlbF9wYXJhbXMpKQojIHNpZ25pZmljYW50CgojIEFscGhhIFBvcyBDb21wCnN1bW1hcnkobG0oYWxwaGFQb3NDb21wIH4gYWdlLCBkYXRhID0gbW9kZWxfcGFyYW1zKSkKI25vdCBzaWduaWZpY2FudAoKIyBBbHBoYSBOZWcgQ29tcApzdW1tYXJ5KGxtKGFscGhhTmVnQ29tcCB+IGFnZSwgZGF0YSA9IG1vZGVsX3BhcmFtcykpCiNub3Qgc2lnbmlmaWNhbnQKCiMgQmV0YSBBZ2VuY3kKc3VtbWFyeShsbShiZXRhQWdlbmN5IH4gYWdlLCBkYXRhID0gbW9kZWxfcGFyYW1zKSkKIyBzaWduaWZpY2FudAoKIyBCZXRhIEJhbmRpdApzdW1tYXJ5KGxtKGJldGFNYWNoaW5lIH4gYWdlLCBkYXRhID0gbW9kZWxfcGFyYW1zKSkKIyBub3Qgc2lnbmlmaWNhbnQKCiMgYWdlbmN5IGJvbnVzCnN1bW1hcnkobG0oYWdlbmN5Qm9udXMgfiBhZ2UsIGRhdGEgPSBtb2RlbF9wYXJhbXMpKQojIG5vdCBzaWduaWZpY2FudAoKYGBgCgojIExlYXJuaW5nIHJhdGUgbW9kZWwKYGBge3IgbGVhcm5pbmcgcmF0ZSByZWdyZXNzaW9ufQojIyBMZWFybmluZyByYXRlIG1vZGVsCmxlYXJuaW5nX3JhdGVzIDwtIG1vZGVsX3BhcmFtcyAlPiUKICBwaXZvdF9sb25nZXIoY29scyA9IGMoYWxwaGFQb3NDaG9pY2U6YWxwaGFOZWdDb21wKSwKICAgICAgICAgICAgICAgbmFtZXNfdG8gPSAibGVhcm5pbmdSYXRlIiwKICAgICAgICAgICAgICAgdmFsdWVzX3RvID0gImVzdGltYXRlIikgJT4lCiAgc2VsZWN0KHN1YmplY3RfaWQsIGFnZSwgbGVhcm5pbmdSYXRlLCBlc3RpbWF0ZSkgJT4lCiAgdW5pcXVlKCkgJT4lCiAgbXV0YXRlKHZhbGVuY2UgPSBjYXNlX3doZW4oc3RyX2RldGVjdChsZWFybmluZ1JhdGUsICJQb3MiKSB+ICJQb3NpdGl2ZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyX2RldGVjdChsZWFybmluZ1JhdGUsICJOZWciKSB+ICJOZWdhdGl2ZSIpLAogICAgICAgICBhZ2VuY3kgPSBjYXNlX3doZW4oc3RyX2RldGVjdChsZWFybmluZ1JhdGUsICJDaG9pY2UiKSB+ICJDaG9pY2UiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyX2RldGVjdChsZWFybmluZ1JhdGUsICJDb21wIikgfiAiQ29tcCIpKQoKbGVhcm5pbmdfcmF0ZXMkYWdlX3ogPC0gc2NhbGVfdGhpcyhsZWFybmluZ19yYXRlcyRhZ2UpCgpsZWFybmluZ19yYXRlX21vZGVsIDwtIG1peGVkKGVzdGltYXRlIH4gYWdlX3ogKiB2YWxlbmNlICogYWdlbmN5ICsgKDF8c3ViamVjdF9pZCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGxlYXJuaW5nX3JhdGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZCA9ICJTIikKbGVhcm5pbmdfcmF0ZV9tb2RlbApzdW1tYXJ5KGxlYXJuaW5nX3JhdGVfbW9kZWwpCiMgbWFpbiBlZmZlY3Qgb2YgYWdlCiMgbWFpbiBlZmZlY3Qgb2YgdmFsZW5jZQojIHZhbGVuY2UgeCBhZ2VuY3kgaW50ZXJhY3Rpb24KCgojdCB0ZXN0IGJldHdlZW4gYWxwaGEgcG9zIGNob2ljZSBhbmQgYWxwaGEgbmVnIGNob2ljZQp0LnRlc3QobW9kZWxfcGFyYW1zJGFscGhhUG9zQ2hvaWNlLCBtb2RlbF9wYXJhbXMkYWxwaGFOZWdDaG9pY2UsIHBhaXJlZCA9IFQpCiNzaWduaWZpY2FudAoKI3QgdGVzdCBiZXR3ZWVuIGFscGhhIHBvcyBjb21wIGFuZCBhbHBoYSBuZWcgY29tcAp0LnRlc3QobW9kZWxfcGFyYW1zJGFscGhhUG9zQ29tcCwgbW9kZWxfcGFyYW1zJGFscGhhTmVnQ29tcCwgcGFpcmVkID0gVCkKI25vdCBzaWduaWZpY2FudAoKYGBgCgoKIyBQbG90IHJlbGF0aW9ucyBiZXR3ZWVuIG1vZGVsIHBhcmFtZXRlcnMgYW5kIGFnZQpgYGB7ciBhZ2UgcGFyYW1ldGVyIHBsb3QsIGZpZy53aWR0aCA9IDcsIGZpZy5oZWlnaHQgPSA0LCB1bml0cyA9ICJpbiJ9CgpwYXJhbXNfbG9uZyA8LSBtb2RlbF9wYXJhbXMgJT4lCiAgcGl2b3RfbG9uZ2VyKG5hbWVzX3RvID0gInBhcmFtIiwKICAgICAgICAgICAgICAgdmFsdWVzX3RvID0gImVzdGltYXRlIiwKICAgICAgICAgICAgICAgY29scyA9IGMoYWxwaGFQb3NDaG9pY2U6YWdlbmN5Qm9udXMpKSAKCnBhcmFtc19sb25nJHBhcmFtIDwtIGZhY3RvcihwYXJhbXNfbG9uZyRwYXJhbSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXZlbHMgPSBjKCJhbHBoYVBvc0Nob2ljZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbHBoYU5lZ0Nob2ljZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbHBoYVBvc0NvbXAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWxwaGFOZWdDb21wIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJldGFBZ2VuY3kiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYmV0YU1hY2hpbmUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWdlbmN5Qm9udXMiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVscyA9IGMoVGVYKCIkXFxhbHBoYV97Y2hvaWNlXyt9JCIpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVYKCIkXFxhbHBoYV97Y2hvaWNlXy19JCIpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGVYKCIkXFxhbHBoYV97Y29tcF8rfSQiKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlWCgiJFxcYWxwaGFfe2NvbXBfLX0kIiksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVgoIiRcXGJldGFfe2FnZW5jeX0kIiksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZVgoIiRcXGJldGFfe21hY2hpbmV9JCIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQWdlbmN5fkJvbnVzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkKCnBhcmFtc19wbG90IDwtIGdncGxvdChwYXJhbXNfbG9uZywgYWVzKHggPSBhZ2UsIHkgPSBlc3RpbWF0ZSwgY29sb3IgPSBwYXJhbSkpICsKICBmYWNldF93cmFwKH5wYXJhbSwgc2NhbGUgPSAiZnJlZSIsIGxhYmVsbGVyID0gbGFiZWxfcGFyc2VkLCBucm93ID0gMikgKwogIGdlb21fcG9pbnQoKSArCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIiwgYWVzKGZpbGwgPSBwYXJhbSkpICsKICB5bGFiKCJQYXJhbWV0ZXIgRXN0aW1hdGUiKSArCiAgeGxhYigiQWdlIikgKwogIHZvY190aGVtZSgpICsKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpCnBhcmFtc19wbG90CmBgYAoKCg==